package com.tepth.remote.control.base.mvp;

import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.disposables.Disposable;

/**
 * Description:
 *
 * @author Hequn.Lee
 * @date 2018/11/8
 */
public abstract class BasePresenter {

    /**
     * 观察者管理
     */
    private CompositeDisposable mCompositeDisposable;

    /**
     * 订阅观察者
     */
    public void subscribe() {
        mCompositeDisposable = new CompositeDisposable();
    }

    /**
     * 添加观察者
     *
     * @param disposable 观察者
     */
    public void addDisposable(Disposable disposable) {
        mCompositeDisposable.add(disposable);
    }

    /**
     * 一次性释放所有观察者
     */
    public void unSubscribe() {
        if (mCompositeDisposable != null) {
            mCompositeDisposable.dispose();
        }
    }
}
